#include "uart.h"

void uart_init()
{
    //GPIO引脚设置
    rGPA0CON &= ~(0xff<<0);//将寄存器0-7清零, 其他位不变
    rGPA0CON |= 0x00000022;
    //串口几个关键寄存器设置
    rULCON0 = 0x3;
    rUCON0 = 0x5;
    rUMCON0 = 0x0;
    rUFCON0 = 0x0;

    //波特率设置, 公式: DIV_VAAL = (PCLK / (bps * 16))-1
    /*如果拿66MHz计算, 
    rUBRDIV0 = 34;
    rUDIVSLOT = 0xdfdd;*/
    //拿67MHz计算
    rUBRDIV0 = 35;
    rUDIVSLOT = 0x0888;

}

//串口发送程序
void putc(char c)
{
    //串口发送一个字符其实就是将一个字节丢入到发送缓冲区中
    //因为串口发送速度远远小于CPU, CPU需要读状态寄存器来判断是否发送完成
    while(!(rUTRSTAT0 & (1<<1) == 1))
    {

    }
    rUTXH0 = c;
    
}



//串口接收
char uart_getchar()
{

}